Speculative computing methods may provide greater computing efficiency. In such methods, sections of a sequential computing task may be carried out in parallel according to a “guess” as to how the computing task will proceed. Examples of such speculative computing methods include speculative parallel thread compilation and speculative parallel thread program execution.
One aspect of performing speculative computing is the prediction of when a particular path will be taken in a computing task. For example, a program may contain several different points at which it may proceed to different steps, depending, for example, on data input, a computed value, etc. In speculative computing, the predictions of which paths will actually be taken during a computing task determine the efficiency of the technique. The more spurious the predictions are, the less efficient the technique becomes.